package main

import (
	"data_csv/perfor"
	"data_csv/reg"
	"fmt"
)

//go语言读写csv文件
var mp = make(map[string]int)

func main() {
	//得到正在穿的穿搭，把id放到map中
	getWearing()
	//解析所有的穿搭
	getWearSchemas()
}

func getWearSchemas() {
	//路径前缀，根据自己需要拼接
	path1 := "C:\\Users\\zhoujinhui\\Downloads\\服饰\\" //读取
	path2 := "C:\\Users\\zhoujinhui\\Downloads\\PF\\" //保存
	//读取的文件名切片,拼在路径中
	name1 := []string{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14"}
	//保存用的地址
	p2 := path2 + "Clothes(1)" + ".csv"
	for i := range name1 {
		//拼接读取用的地址
		p1 := path1 + name1[i] + ".csv"
		//读文件操作，得到一个
		st := perfor.ReadCsv(p1)
		//对得到的切片数据进行处理
		sc := process(st)
		//保存到一个新的文件中
		err := perfor.WriterCSVOne(p2, sc)
		if err != nil {
			fmt.Println("文件写入出错", err)
			return
		}
	}
	fmt.Println("文件写入成功")
}
func getWearing() {

	path1 := "C:\\Users\\zhoujinhui\\Downloads\\穿着\\" //读取
	name1 := []string{"1", "2", "3", "4", "5", "6", "7"}
	for i := range name1 {
		//拼接读取用的地址
		p1 := path1 + name1[i] + ".csv"
		//读文件操作，得到一个
		st := perfor.ReadCsv(p1)
		//对得到的切片数据进行处理
		for i := range st {
			mp[st[i][3]]++
			if st[i][3] == "13114" {
				fmt.Println(i)
			}
		}

	}
	return
}

// 对字符串进行处理，进行一些分割的操作
func process(st [][]string) (sc [][]string) {
	for i := range st {
		s := st[i][3]
		//使用正则对字符串进行分割替换
		k := reg.Reg(s)
		//把需要的数据放进切片中
		kk := append([]string{st[i][0]}, st[i][1], st[i][2])
		//判断是否wearing,放入true或者false
		fg := "	"
		if mp[st[i][0]] != 0 {
			fg = "true"
		} else {
			fg = " "
		}
		kk = append(kk, fg)
		kk = append(kk, k...)

		//再放进二维切片
		sc = append(sc, kk)
	}
	return
}
